<
library> (
DLL) A
library which is linked to {application
programs} when they are loaded or run rather than as the final
phase of
compilation. This means that the same block of
library code can be shared between several
tasks rather than
each task containing copies of the routines it uses. The
executable is compiled with a library of "
stubs" which allow
link errors to be detected at
compile-time. Then, at {run
time}, either the system
loader or the task's entry code
must arrange for library calls to be patched with the
addresses of the real shared library routines, possibly via a
jump table.
The alternative is to make library calls part of the
operating system kernel and enter them via some kind of
trap instruction. This is generally less efficient than an
ordinary
subroutine call.
It is important to ensure that the version of a dynamically
linked library is compatible with what the executable expects.
Examples of operating systems using dynamic linking are
SunOS (.so - shared object files),
Microsoft Windows
(.
dll) and
RISC OS on the
Acorn Archimedes (relocatable
modules).
(1995-12-12)